package com.icss.flow.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.icss.flow.pojo.entity.TMetaEntity;
import com.icss.flow.exception.FlowException;
import com.icss.flow.pojo.dto.FlowDTO;
import com.icss.flow.pojo.dto.TMetaEntityDTO;
import com.icss.flow.pojo.dto.TMetaEntityPageDTO;
import com.icss.flow.pojo.vo.EntityGroupVO;
import com.icss.flow.pojo.vo.TMetaEntityVO;
import org.apache.dubbo.qos.command.exception.CommandException;

import java.util.List;
import java.util.Map;

/**
 * 元数据实体表(TMetaEntity)表服务接口
 *
 * @author makejava
 * @since 2024-01-30 12:42:00
 */
public interface TMetaEntityService extends IService<TMetaEntity> {

    /**
     * 通过ID查询单条数据
     *
     * @param entityCode 主键
     * @return 实例对象
     */
    TMetaEntityDTO queryById(Integer entityCode);


    List<Integer> queryAllEntityCode();

    IPage<TMetaEntity> queryPage(TMetaEntityPageDTO pageDTO);


    List<EntityGroupVO> queryListAndGroup(TMetaEntityPageDTO pageDTO);

    Boolean createEntity(TMetaEntityDTO tMetaEntityDTO);



    boolean deleteEntity(Integer id);


    /***
     * 查询实体详情
     * @param entityCode
     * @return 实体vo
     */
    TMetaEntityVO getEntityDetail(Integer entityCode);

    Boolean updateEntity(Integer entityCode, String label, List<String> tags);

    Boolean getEntityCode(Integer entityCode,String json);
}
